﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Controleur
{
    /**
    * @author PAN
    * @date Juin 2010
    * @brief La classe ModeCercle dérive de modeForme et correspond au mode Cercle des formes
    */
    public class ModeCercle : ModeForme
    {
        /***********************/
        /**** Constructeurs ****/
        /***********************/

        /** 
         * ModeCercle(System.Drawing.Color _couleur, int _epaisseur)
         * 
         * @brief Constructeur
         * @param System.Drawing.Color _couleur : la couleur des traits par défaut
         * @param int _epaisseur : l'épaisseur des traits par défaut
         * @return void
         */
        public ModeCercle(System.Drawing.Color _couleur, int _epaisseur): base(_couleur, _epaisseur)
        {
        }

        /** 
         * ModeCercle()
         * 
         * @brief Constructeur par défaut
         * @return void
         */
        public ModeCercle(): base()
        {
        }

        /***************************************/
        /** Actions spécifiques à chaque mode **/
        /***************************************/


        /**
         * ActionZoneDessin(Microsoft.Ink.Stroke _stroke)
         * 
         * @brief écriture sur la zone de dessin
         * @param Stroke _stroke : objet contenant de nombreuses informations (analogue à ensemble de points)
         * @return void
        */
        public override void ActionZoneDessin(Microsoft.Ink.Stroke _stroke)
        {
            System.Drawing.Rectangle rectangleEnglobant = _stroke.GetBoundingBox();
            int centre_x = rectangleEnglobant.Location.X + rectangleEnglobant.Size.Width / 2;
            int centre_y = rectangleEnglobant.Location.Y + rectangleEnglobant.Size.Height / 2;
            int taille = Math.Max(rectangleEnglobant.Width, rectangleEnglobant.Height);

            Modele.Cercle cercle = new Modele.Cercle(centre_x, centre_y, taille);

            addInk(cercle, _stroke.DrawingAttributes);
        }
    }
}
